home *** CD-ROM | disk | FTP | other *** search
- package sitemap;
-
- import hhapplet.URLFileHandler;
- import java.applet.Applet;
- import java.awt.Label;
- import java.net.URL;
- import java.util.Properties;
-
- public class SiteMapParser extends Thread {
- protected MyBufferedInputStream m_isInputStream;
- protected Properties m_properties;
- protected SiteMapParserOutput m_smpoOutput;
- protected String m_strFileName;
- protected URL m_urlDocBase;
- protected Applet m_applet;
-
- public void parse() {
- int var1 = 0;
-
- try {
- this.m_isInputStream = new MyBufferedInputStream(URLFileHandler.makeURL(this.m_urlDocBase, this.m_strFileName, (String)null).openStream());
- } catch (Exception var5) {
- this.m_applet.add("Center", new Label("Can't open URL or file " + ((Throwable)var5).getMessage()));
- return;
- }
-
- this.m_smpoOutput.start();
-
- try {
- for(Tag var2 = Tag.readTag(this.m_isInputStream); !(var2 instanceof HtmlTag); var2 = Tag.readTag(this.m_isInputStream)) {
- }
-
- Tag var7 = Tag.readTag(this.m_isInputStream);
-
- while(!(var7 instanceof HtmlEndTag)) {
- if (var7 instanceof ObjectTag) {
- if (((ObjectTag)var7).getType().equalsIgnoreCase("text/site properties")) {
- for(Tag var8 = Tag.readTag(this.m_isInputStream); !(var8 instanceof ObjectEndTag); var8 = Tag.readTag(this.m_isInputStream)) {
- if (var8 instanceof ParamTag) {
- try {
- this.m_smpoOutput.param(((ParamTag)var8).getName(), ((ParamTag)var8).getValue());
- } catch (NullPointerException var4) {
- }
- }
- }
- } else {
- while(!(var7 instanceof ObjectEndTag)) {
- var7 = Tag.readTag(this.m_isInputStream);
- }
- }
- } else if (var7 instanceof UlTag) {
- this.parseULTag();
- }
-
- var7 = Tag.readTag(this.m_isInputStream);
- ++var1;
- if (var1 % 10 == 0) {
- System.gc();
- Runtime.getRuntime().gc();
- }
- }
- } catch (TagInvalidException var6) {
- ((Throwable)var6).printStackTrace();
- }
-
- try {
- this.m_isInputStream.close();
- } catch (Exception var3) {
- }
-
- this.m_smpoOutput.end();
- }
-
- public SiteMapParserOutput getOutput() {
- return this.m_smpoOutput;
- }
-
- public Thread parseInSeparateThread(String var1, URL var2, Applet var3) {
- this.m_strFileName = var1;
- this.m_urlDocBase = var2;
- this.m_applet = var3;
- ((Thread)this).setPriority(4);
- ((Thread)this).start();
- return this;
- }
-
- public SiteMapParser(SiteMapParserOutput var1) {
- this.m_smpoOutput = var1;
- this.m_properties = new Properties();
- }
-
- public void parseInCurrentThread(String var1, URL var2, Applet var3) {
- this.m_strFileName = var1;
- this.m_urlDocBase = var2;
- this.m_applet = var3;
- this.parse();
- }
-
- protected void parseULTag() throws TagInvalidException {
- for(Tag var1 = Tag.readTag(this.m_isInputStream); !(var1 instanceof UlEndTag); var1 = Tag.readTag(this.m_isInputStream)) {
- if (var1 instanceof LiTag) {
- this.parseLiTag();
- } else if (var1 instanceof UlTag) {
- this.m_smpoOutput.indent(1);
- this.parseULTag();
- this.m_smpoOutput.indent(-1);
- }
- }
-
- }
-
- public void closeFiles() {
- try {
- this.m_isInputStream.close();
- } catch (Exception var1) {
- }
- }
-
- protected void parseLiTag() throws TagInvalidException {
- Tag var1 = Tag.readTag(this.m_isInputStream);
- if (!(var1 instanceof ObjectTag)) {
- if (var1 instanceof UlTag) {
- this.m_smpoOutput.indent(1);
- this.parseULTag();
- this.m_smpoOutput.indent(-1);
- }
-
- } else {
- this.m_smpoOutput.object_start();
- if (((ObjectTag)var1).getType().equalsIgnoreCase("text/sitemap")) {
- for(Tag var2 = Tag.readTag(this.m_isInputStream); !(var2 instanceof ObjectEndTag); var2 = Tag.readTag(this.m_isInputStream)) {
- if (var2 instanceof ParamTag) {
- this.m_smpoOutput.param(((ParamTag)var2).getName(), ((ParamTag)var2).getValue());
- }
- }
-
- this.m_smpoOutput.object_end();
- } else {
- while(!(var1 instanceof ObjectEndTag)) {
- var1 = Tag.readTag(this.m_isInputStream);
- }
-
- }
- }
- }
-
- public void run() {
- this.parse();
- }
- }
-